package com.example.lib.c1;

/**
 * 守护线程
 */
public class Main3DaemonThread {

    public static class DaemonThread extends Thread {
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("time:" + System.currentTimeMillis());
                try {
                    sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        DaemonThread thread = new DaemonThread();
        //标记这线程为守护线程或用户线程，此方法要在start之前使用
        thread.setDaemon(true);
        //在哪个线程start() 就是哪个线程的守护线程
        //所以thread线程是main线程的守护线程
        thread.start();
        try {
            //main线程睡5秒结束，他的守护线程跟着结束，所以tread线程只能执行5秒
            Thread.currentThread().sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
